get-the-solution

Subversion – Repositories zusammenlegen – exportieren

By
on Regards: Infrastructure;

Vor kurzem stand ich vor dem Problem mehrere Repositories die ich mit Subversion verwalte zu einer einzigen zusammen zu führen. Das geht recht einfach.

  1. Neue Repositorie anlegen (z.B. mit svnadmin create REPOS_PATH oder über websvn)
  2. Ins Verzeichnis wechseln wo die Repositories gespeichert sind
  3. Alle Repositories die man jetzt in die neue Repositorie laden bzw. einfügen will müssen mit dump exportiert werden.
  4. Könnte z.B. so aussehen: nas:~# svnadmin dump /c/.subversion/Repositoriename1/ > /backupRepositoriename1.dump
  5. Danach muss man nur noch alle dumps in die neue Repositorie laden
  6. Könnte z.B. so aussehen: nas:~# svnadmin load /c/.subversion/UnsereNeueRepositoriename/ < /backup/Repositoriename1.dump
  7. Danach könnt ihr die nicht benötigten Repositories z.B. so rm /c/.subversion/AlteRepositorie/ -rf löschen

Allerdings kann es sein, dass in der alten und in der neuen Repositorie die Ordnernamen gleich heißen. Das führt zu einem Konflikt und der “load” Vorgang kann nicht fortgesetzt werden.

Das wird höchstwahrscheinlich mit den Ordnern branches, trunk, tags passieren.

Man muss also dafür sorgen, dass entweder der dump oder die Zielrespositorie diesen Ordner nicht enthält.

Man kann sie mit dem Befehl svn rm http://server/svn/respositorie/trunk löschen. Notfalls wäre ein Umbennen des Ordners ebenfalls möglich mit svn mv http://server/svn/respositorie/trunk http://server/svn/respositorie/trunk1

Auch immer gut zu wissen: svn aus einem Verzeichnis löschen:

find . -name ".svn" -exec rm -rf {} \;

Links:

http://svnbook.red-bean.com/en/1.1/re29.html

http://de.wikipedia.org/wiki/Apache_Subversion